package integracion;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import java.sql.Statement;
import java.util.ArrayList;

import share.Eje;

public class EjeDAO
{

	private final Connection conn;

	public EjeDAO(Connection conn)
	{
		this.conn = conn;
	}

	public boolean insert(Eje eje)
	{
		Statement ps;

		try
		{
			String consulta="INSERT INTO eje VALUES ("+"null,'"+eje.getNombre()+"','"+eje.getDescripcion()+"');";
			System.out.println(consulta);
			ps = conn.createStatement();
			ps.executeUpdate(consulta);
		}
		catch (SQLException e)
		{

			e.printStackTrace();
		}

		return false;
	}

	public Eje getEjeByNick(String nick)
	{
		PreparedStatement ps;
		try
		{
			ps = conn.prepareStatement("select * from eje where nombre=?");
			ps.setString(1, nick);

			ResultSet rs = ps.executeQuery();
			if(rs.next())
			{
				Eje eje = new Eje();
				eje.setId(rs.getInt("codigo"));
				eje.setNombre(rs.getString("nombre"));
				eje.setDescripcion(rs.getString("descripcion"));
				return eje;
			}
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		return null;

	}

	public Eje getEjeById(int id)
	{
		PreparedStatement ps;
		try
		{
			ps = conn.prepareStatement("select * from eje where codigo=?");
			ps.setInt(1, id);

			ResultSet rs = ps.executeQuery();
			if(rs.next())
			{

				Eje eje = new Eje();
				eje.setId(rs.getInt("codigo"));
				eje.setNombre(rs.getString("nombre"));
				eje.setDescripcion(rs.getString("descripcion"));
				return eje;
			}
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		return null;

	}

	public boolean eliminarEjeId(int id)
	{
		PreparedStatement ps;
		try
		{
			ps = conn.prepareStatement("delete from eje where codigo="+id+";");
			ps.executeUpdate();
			return true;

		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		return false;

	}

	public void modificar(Eje eje)
	{
		Statement ps;

		try
		{	String consulta="UPDATE eje set nombre= '"+eje.getNombre()+"',descripcion= '"+eje.getDescripcion()+"' where codigo= "+eje.getId()+";";
			System.out.println(consulta);
			ps = conn.createStatement();
			ps.executeUpdate(consulta);
		}
		catch (SQLException e)
		{

			e.printStackTrace();
		}

		return;
	}

	public ArrayList<Eje> getLista()
	{
		ResultSet rs;
		try
		{
			rs = conn.createStatement().executeQuery("select * from eje");
			ArrayList<Eje> lista = new ArrayList<Eje>();
			while(rs.next())
			{

				Eje eje = new Eje();
				eje.setId(rs.getInt("codigo"));
				eje.setNombre(rs.getString("nombre"));
				eje.setDescripcion(rs.getString("descripcion"));

				lista.add(eje);
			}
			return lista;
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		return null;

	}
}
